package fachada;

import java.util.List;

import exceptions.UsuarioExistenteException;

import basicas.Atracao;
import basicas.Compra;
import basicas.ObjetoGeral;
import basicas.Ocorrencia;
import basicas.Passe;
import basicas.Usuario;

public interface IFachada {

	public void inserirCompra(Compra a);

	public void excluirCompra(Compra a);

	public Compra consultarCompraPorId(Integer id);

	public List<Compra> consultarTodosCompra();

	public void alterarCompra(Compra a);

	/**
	 * USUARIO
	 */

	public void inserirUsuario(Usuario a)  throws UsuarioExistenteException;

	public void excluirUsuario(Usuario a);

	public Usuario consultarUsuarioPorId(Integer id);

	public List<Usuario> consultarTodosUsuario();

	public void alterarUsuario(Usuario a);

	public void inserirAtracao(Atracao a);

	public void excluirAtracao(Atracao a);

	public Atracao consultarAtracaoPorId(Integer id);

	public List<Atracao> consultarTodosAtracao();

	public void alterarAtracao(Atracao a);

	public void inserirObjetoGeral(ObjetoGeral a);

	public void excluirObjetoGeral(ObjetoGeral a);

	public ObjetoGeral consultarObjetoGeralPorId(Integer id);

	public List<ObjetoGeral> consultarTodosObjetoGeral();

	public void alterarObjetoGeral(ObjetoGeral a);

	/**
	 * OCORRENCIA
	 */

	public void inserirOcorrencia(Ocorrencia a);

	public void excluirOcorrencia(Ocorrencia a);

	public Ocorrencia consultarOcorrenciaPorId(Integer id);

	public List<Ocorrencia> consultarTodosOcorrencia();

	public void alterarOcorrencia(Ocorrencia a);
	
	
	/**
	 * PASSE
	 */
	
	public void InserirPasse(Passe p);
	
	public void excluirPasse(Passe p);
	
	public Passe consultarPassePorId(Integer id);
	
	public List<Passe> consultarTodosPasses();
	
	public void alterarPasse(Passe p);

	public Usuario consultarUsuarioPorEmail(String email);

}